﻿using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LittleBee.Cells
{
	//
	// Summary:
	//     Provides data for the LittleBee.Cells.INotifyPointerPropertyChanged.PointerPropertyChanged
	//     event.
	public class PointerPropertyChangingEventArgs : EventArgs
	{
		//
		// Summary:
		//     Initializes a new instance of the LittleBee.Cells.PointerPropertyChangingEventArgs
		//     class.
		//
		// Parameters:
		//   propertyName:
		//     The name of the property that changing.
		public PointerPropertyChangingEventArgs(JProperty property)
		{
			Property = property;
		}

		public virtual JProperty Property { get; }
	}

	//
	// Summary:
	//     Represents the method that will handle the LittleBee.Cells.INotifyPointerPropertyChanging.PointerPropertyChanging
	//     event raised when property of one pointer is changing
	//
	// Parameters:
	//   sender:
	//     The source of the event.
	//
	//   e:
	//     A LittleBee.Cells.PointerPropertyChangedEventArgs that contains the event data.
	public delegate bool PointerPropertyChangingEventHandler(object sender, PointerPropertyChangingEventArgs e);

	public interface INotifyPointerPropertyChanging
	{
		//
		// Summary:
		//     Occurs when a property value changing.
		event PointerPropertyChangingEventHandler PointerPropertyChanging;
	}
}
